<?php

// --------
// Sécurité
// --------
if (isValidConstant() != 1) {
    fermeSessionUtilisateur();
}

// ----------------------
// Droit de l'utilisateur
// ----------------------
if ($_SESSION['gestion_site'] < 'Oui') {
    exit;
}

// ------------------------------
// Caractéristiques du module
// ------------------------------
unset($module);
$module = array(
    "titre" => "Gestion des utilisateurs",
    "urldest" => $SCRIPT_NAME . "?page=liste_utilisateurs",
    "recherche" => array("engin" => false),
    "jeton" => $jeton,
    "opradmin" => "Ajouter un utilisateur",
    "fenetre" => array(
        "nom" => "liste_utilisateurs",
        "titre" => "titre",
        "largeur" => "755",
        "hauteur" => "406",
        "champs" => array("lemploye", "lutilisateur", "lnompersonne", "lemail", "lnoemployeur", "lcellulaire", "lfournisseur"),
        "validation" => true
    ),
    "msgajoutbouton" => "Ajout de la fiche de l'utilisateur",
    "actionajoutbouton" => "Ajouter la fiche de l'utilisateur",
    "msgmodifbouton" => "Modification de la fiche de l'utilisateur",
    "actionmodifbouton" => "Modifier la fiche de l'utilisateur",
    "nombre_a_afficher" => array(
        0 => array("refid" => 15, "valeur" => 15),
        1 => array("refid" => 30, "valeur" => 30),
        2 => array("refid" => 45, "valeur" => 45),
        3 => array("refid" => 60, "valeur" => 60),
        4 => array("refid" => 120, "valeur" => 120)
    ),
    "lientri" => true,
    "entete" => array(
        1 => array("Utilisateur" => "utilisateur", "largeur" => "140px"),
        2 => array("Nom de la personne" => "nomreel", "largeur" => "250px"),
        3 => array("Employeur" => "employeur", "largeur" => "140px"),
        4 => array("Courriel" => "email", "largeur" => "510px"),
        5 => array("Niveau" => "CONCAT(gestionsite,gestionutilisateur)", "largeur" => "105px"),
        6 => array("Action" => "enligne", "largeur" => "120px")
    ),
    "msg" => array(
        "maj_ok" => "Mise à jour de la fiche de l'utilisateur effectuée avec succès.",
        "maj_echec" => "L'opération de mise à jour de la fiche de l'utilisateur a échouée",
        "rech_echec" => "La recherche a été infructueuse ou a échouée.",
        "employeur_invalide" => "Employeur introuvable ou inconnu.",
        "maj_utl_suppr" => "Fiche de l'utilisateur supprimée.",
        "maj_utl_bloque" => "Accès à l'application pour cet utilisateur est bloqué.",
        "maj_utl_autorise" => "Accès à l'application pour cet utilisateur est autorisé.",
        "maj_utl_mdp" => "Mot de passe modifié avec succès.",
        "reset_2fa_succes" => "Retrait du facteur à double authentification effectué avec succès.",
        "reset_2fa_echec" => "Retrait du facteur à double authentification a échoué."
    )
);

// ------------------
// Requête sur le tri
// ------------------
$rtri = antiInjection($module["entete"][$tri][key($module["entete"][$tri])] . " " . $dir);

function creerNouveauMotDePasse() {
    $chaine = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*-=_+[]\{}|;:,.~";
    $nouveauMotDePasse = "";
    for ($x = 0; $x < 9; $x++) {
        $nouveauMotDePasse .= substr($chaine, rand(0, 95), 1);
    }
    return $nouveauMotDePasse;
}

function envoieCourrielConfirmation($adresse, $utilisateur, $nouveauMotDePasse) {
    $messageTexte = "<html>
   	<head>
   	<title>Changement de mot de passe</title>
   	</head>
   	<body>
        Ceci est un mesage de l'application de lib&eacute;rations syndicales.
   	<p>
   	Nous avons bien re&#231;u votre demande de changement de mot de passe pour <u><i>Lib&eacute;rations</i></u>
   	<p>
   	Votre nouveau mot de passe temporaire est : $nouveauMotDePasse.<br>\n
        Vous devrez le modifier &agrave; la prochaine connexion.<br>\n
     	<p>
     	Merci.
     	<p>
     	Lib&eacute;rations<br/>
        Syst&egrave;me automatis&eacute;<br/>
        Ne pas r&eacute;pondre &agrave; ce courriel - Aucune r&eacute;ponse ne sera &eacute;mise.
     	</body>
      </html>";
    return envoieCourriel($adresse, $utilisateur,
            "Confirmation de votre demande de changement de mot de passe", $messageTexte);
}

function envoieCourrielConfirmation2FA($adresse, $utilisateur) {
    $messageTexte = "<html>
   	<head>
   	<title>Changement du facteur &agrave; double authentification</title>
   	</head>
   	<body>        
        Ceci est un mesage de l'application de lib&eacute;rations syndicales.
   	<p>
   	Nous avons bien re&#231;u votre demande de changement du facteur &agrave; double authentification pour 
        <u><i>Lib&eacute;rations</i></u>
   	<p>
        Vous pouvez effectuer &agrave; nouveau cette op&eacute;ration &agrave; la prochaine connexion.<br>\n
     	<p>
     	Merci.
     	<p>
     	Lib&eacute;rations<br/>
        Syst&egrave;me automatis&eacute;<br/>
        Ne pas r&eacute;pondre &agrave; ce courriel - Aucune r&eacute;ponse ne sera &eacute;mise.
     	</body>
      </html>";
    return envoieCourriel($adresse, $utilisateur,
            "Confirmation de votre demande de changement du facteur a double authentification", $messageTexte);
}

// -----------------------
// Opération de sauvegarde
// -----------------------
if (isset($action)) {
    $msg = "";
    $action = stripslashes(antiInjection($action));
    switch ($action) {
        case "Ajouter la fiche de l'utilisateur":
        case "Modifier la fiche de l'utilisateur":
            //Vérifier les valeurs avant d'effectuer le traitement
            $lnoutilisateur = antiInjection($lnoutilisateur);
            $lnompersonne = antiInjection($lnompersonne);
            $lemail = antiInjection($lemail);
            $lutilisateur = antiInjection($lutilisateur);
            $lcellulaire = antiInjection($lcellulaire);
            $lnoemployeur = antiInjection(filter_input(INPUT_POST, 'lnoemployeur'));
            $lfournisseur = antiInjection(filter_input(INPUT_POST, 'lfournisseur'));

            $error = false;

            if (empty($lnoutilisateur)) {
                $module["resultatSQL"] = false;
                $module["message"] = "Le code utilisateur est requis.";
                $error = true;
            } elseif (empty($lnompersonne)) {
                $module["resultatSQL"] = false;
                $module["message"] = "Le nom de l'utilisateur est requis";
                $error = true;
            } elseif (!filter_var($lemail, FILTER_VALIDATE_EMAIL)) {
                $module["resultatSQL"] = false;
                $module["message"] = "L'adresse courriel est requise et doit être valide.";
                $error = true;
            } elseif ($lnoemployeur === "" && $lnoemployeur !== 0) {
                $module["resultatSQL"] = false;
                $module["message"] = "L'employeur de l'utilisateur est requis.";
                $error = true;
            } elseif (!isValidPhone($lcellulaire)) {
                $module["resultatSQL"] = false;
                $module["message"] = "Le numéro de cellulaire est requis et doit être valide.";
                $error = true;
            } elseif ($lfournisseur == "") {
                $module["resultatSQL"] = false;
                $module["message"] = "Le fournisseur du service cellulaire est requis.";
                $error = true;
            }

            // Ok, tout est beau, sauvegarde
            if (!$error) {
                unset($sqlparam, $result);
                $lnoemployeur = antiInjection($lnoemployeur);
                $sqlparam["table"][] = "employeurs";
                $sqlparam["where"][] = "refemployeur='$lnoemployeur'";
                $result = executerRequeteSql($sqlparam);
                if (!isset($result)) {
                    $module["resultatSQL"] = false;
                    $module["message"] = $module["msg"]["employeur_invalide"];
                } else {
                    unset($sqlparam, $result);

                    if ($action == "Modifier la fiche de l'utilisateur") {
                        $sqlparam["type"] = "UPDATE";
                        $sqlparam["where"][] = "refutilisateur = '" . $lnoutilisateur . "'";
                    } else {
                        $sqlparam["type"] = "INSERT";
                        $lmotdepasse = creerNouveauMotDePasse();
                    }

                    // Login d'utilisateur selon le syndicat
                    $login = "siiieq";

                    $sqlparam["table"][] = "administration";
                    $sqlparam["connexion"] = "maitre";
                    $sqlparam["champs"]["utilisateur"] = "'$lutilisateur'";
                    $sqlparam["champs"]["nomreel"] = "'$lnompersonne'";
                    if ($action == "Ajouter la fiche de l'utilisateur") {
                        $sqlparam["champs"]["hashloginmps"] = password_hash($lmotdepasse, PASSWORD_DEFAULT);
                    }
                    $sqlparam["champs"]["email"] = "'$lemail'";
                    $sqlparam["champs"]["syndicat"] = "'" . $_SESSION["syndicat"] . "'";
                    $sqlparam["champs"]["employeur"] = sprintf("'%d'", $lnoemployeur);
                    $sqlparam["champs"]["cellulaire"] = "'$lcellulaire'";
                    $sqlparam["champs"]["fournisseur"] = "'$lfournisseur'";
                    $sqlparam["champs"]["enligne"] = 1;
                    $result = executerRequeteSql($sqlparam);

                    if ($action == "Ajouter la fiche de l'utilisateur") {
                        unset($sqlparam, $result2);
                        $sqlparam["connexion"] = "maitre";
                        $sqlparam["table"][] = "administration";
                        $sqlparam["champs"][] = "refutilisateur";
                        $sqlparam["champs"][] = "utilisateur";
                        $sqlparam["champs"][] = "nomreel";
                        $sqlparam["champs"][] = "email";
                        $sqlparam["where"][] = "utilisateur = '$lutilisateur'";
                        $sqlparam["where"][] = "nomreel = '$lnompersonne'";
                        $result2 = executerRequeteSql($sqlparam);
                        $adresse = $result2[0]["email"];
                        $utilisateur = $result2[0]["nomreel"];
                        $resultEmail = envoieCourrielConfirmation($adresse, $lnompersonne, $lmotdepasse);
                    }

                    if (isset($result) && $action == "Ajouter la fiche de l'utilisateur" && $resultEmail === "Message envoyé") {
                        $module["resultatSQL"] = true;
                        $module["message"] = $module["msg"]["maj_ok"];
                    } elseif (isset($result) && $action == "Modifier la fiche de l'utilisateur") {
                        $module["resultatSQL"] = true;
                        $module["message"] = $module["msg"]["maj_ok"];
                    } else {
                        $module["resultatSQL"] = false;
                        $module["message"] = $module["msg"]["maj_echec"];

                        if (!empty($resultEmail)) {
                            $module["message"] .= $resultEmail;
                        }
                    }
                }
            }
            break;
        case "Bloquer":
        case "Autoriser":
            $lnoutilisateur = antiInjection($lnoutilisateur);
            $sqlparam["type"] = "UPDATE";
            $sqlparam["connexion"] = "maitre";
            $sqlparam["table"][] = "administration";
            $sqlparam["where"][] = "refutilisateur = '$lnoutilisateur'";
            $val = ($action == "Bloquer") ? 1 : 0;
            // Ne pas réactiver le flag «enligne» après un blocage.
            // L'utilisateur doit se brancher à nouveau si son compte est débloqué.
            if ($action == "Bloquer") {
                $sqlparam["champs"]["enligne"] = 0;
            }
            $sqlparam["champs"]["acces"] = sprintf("%d", $val);
            $result = executerRequeteSql($sqlparam);
            if (isset($result)) {
                $module["resultatSQL"] = true;
                $module["message"] = ($action == "Bloquer") ? $module["msg"]["maj_utl_bloque"] : $module["msg"]["maj_utl_autorise"];
            } else {
                $module["resultatSQL"] = false;
                $module["message"] = $module["msg"]["maj_echec"];
            }
            break;
        case "Supprimer":
            $lnoutilisateur = antiInjection($lnoutilisateur);
            $sqlparam["type"] = "UPDATE";
            $sqlparam["connexion"] = "maitre";
            $sqlparam["table"][] = "administration";
            $sqlparam["where"][] = "refutilisateur = '$lnoutilisateur'";
            unset($val);
            $val = 2;
            $sqlparam["champs"]["acces"] = sprintf("'%d'", $val);
            $result = executerRequeteSql($sqlparam);
            if (isset($result)) {
                $module["resultatSQL"] = true;
                $module["message"] = $module["msg"]["maj_utl_suppr"];
            } else {
                $module["resultatSQL"] = false;
                $module["message"] = $module["msg"]["maj_echec"];
            }
            break;
        case "Créer un nouveau mot de passe":
            $n_mp = creerNouveauMotDePasse();
            $sqlparam["type"] = "UPDATE";
            $sqlparam["connexion"] = "maitre";
            $sqlparam["table"][] = "administration";
            $sqlparam["where"][] = sprintf("refutilisateur = '%d'", $lnoutilisateur);
            $sqlparam["champs"]["hashloginmps"] = "'" . password_hash($n_mp, PASSWORD_DEFAULT) . "'";
            $sqlparam["champs"]["temporaire"] = 1;
            $result = executerRequeteSql($sqlparam);

            unset($sqlparam, $result2);
            $sqlparam["type"] = "INSERT";
            $sqlparam["connexion"] = "maitre";
            $sqlparam["table"][] = "historique_mdp";
            $sqlparam["champs"]["noutilisateur"] = sprintf("'%d'", $lnoutilisateur);
            $sqlparam["champs"]["hashloginmps"] = "'" . password_hash($n_mp, PASSWORD_DEFAULT) . "'";
            $result2 = executerRequeteSql($sqlparam);

            unset($sqlparam, $result3);
            $sqlparam["connexion"] = "maitre";
            $sqlparam["table"][] = "administration";
            $sqlparam["champs"][] = "refutilisateur";
            $sqlparam["champs"][] = "nomreel";
            $sqlparam["champs"][] = "email";
            $sqlparam["where"][] = "refutilisateur = '" . $lnoutilisateur . "'";
            $result3 = executerRequeteSql($sqlparam);
            $adresse = $result3[0]["email"];
            $utilisateur = $result3[0]["nomreel"];
            $resultEmail = envoieCourrielConfirmation($adresse, $utilisateur, $n_mp);

            if (isset($result) && $resultEmail === "Message envoyé") {
                $module["resultatSQL"] = true;
                $module["message"] = $module["msg"]["maj_utl_mdp"];
            } else {
                $module["resultatSQL"] = false;
                $module["message"] = $module["msg"]["maj_echec"];
            }
            break;
        case "Retirer le facteur à double authentification":
            unset($sqlparam, $result);
            $sqlparam["type"] = "UPDATE";
            $sqlparam["connexion"] = "maitre";
            $sqlparam["table"][] = "administration";
            $sqlparam["where"][] = sprintf("refutilisateur = '%d'", $lnoutilisateur);
            $sqlparam["champs"]["secret2fa"] = "null";
            $result = executerRequeteSql($sqlparam);

            unset($sqlparam, $result2);
            $sqlparam["connexion"] = "maitre";
            $sqlparam["table"][] = "administration";
            $sqlparam["champs"][] = "refutilisateur";
            $sqlparam["champs"][] = "nomreel";
            $sqlparam["champs"][] = "email";
            $sqlparam["where"][] = "refutilisateur = '" . $lnoutilisateur . "'";
            $result2 = executerRequeteSql($sqlparam);
            $adresse = $result2[0]["email"];
            $utilisateur = $result2[0]["nomreel"];

            $resultEmail = envoieCourrielConfirmation2FA($adresse, $utilisateur);

            if (isset($result) && $resultEmail === "Message envoyé") {
                $module["resultatSQL"] = true;
                $module["message"] = $module["msg"]["reset_2fa_succes"];
            } else {
                $module["resultatSQL"] = false;
                $module["message"] = $module["msg"]["reset_2fa_echec"];
            }

            break;
        case "Recherche":
            unset($sqlparam, $result);
            $zonerecherche = antiInjection($zonerecherche);
            $tab_rech = explode(",", $zonerecherche);
            $zonerecherche2 = trim($tab_rech[1]) . " " . trim($tab_rech[0]);
            $sqlparam["connexion"] = "maitre";
            $sqlparam["table"][] = "administration";
            $sqlparam["champs"][] = "refutilisateur";
            $sqlparam["champs"][] = "utilisateur";
            $sqlparam["champs"][] = "nomreel";
            $sqlparam["champs"][] = "email";
            $sqlparam["champs"][] = "employeur";
            $sqlparam["where"][] = "CONCAT(utilisateur, nomreel, email) LIKE '%" . antiInjection($zonerecherche2) . "%'";
            $sqlparam["where"][] = "syndicat = '" . $_SESSION["syndicat"] . "'";
            $result = executerRequeteSql($sqlparam);
            if (isset($result)) {
                $lnompersonne_rech = antiInjection($result[0]["nomreel"]);
                $lnoutilisateur_rech = antiInjection($result[0]["refutilisateur"]);
                $lutilisateur_rech = antiInjection($result[0]["utilisateur"]);
                $lnoemployeur_rech = antiInjection($result[0]["employeur"]);
                //$lmotdepasse_rech = antiInjection($result[0]["motdepasse"]);
                $lemail_rech = antiInjection($result[0]["email"]);
            } else {
                $module["resultatSQL"] = false;
                $module["message"] = $module["msg"]["rech_echec"];
            }
            break;
    }
} else {
    unset($lnoutilisateur);
    unset($lutilisateur);
    unset($lnompersonne);
    unset($lnoemployeur);
    unset($lnomemployeur);
    unset($lemail);
    unset($lcellulaire);
    unset($lfournisseur);
    $lnoutilisateur = "";
    $lutilisateur = "";
    $lnompersonne = "";
    $lnoemployeur = "";
    $lnomemployeur = "";
    $lemail = "";
    $lcellulaire = "";
    $lfournisseur = "";
}

$i = 0;
unset($sqlparam);
$sqlparam["connexion"] = "maitre";
$sqlparam["table"][] = "administration";
$sqlparam["champs"][] = "refutilisateur";
$sqlparam["champs"][] = "utilisateur";
$sqlparam["champs"][] = "nomreel";
$sqlparam["champs"][] = "email";
$sqlparam["champs"][] = "motdepasse";
$sqlparam["champs"][] = "employeur";
$sqlparam["champs"][] = "cellulaire";
$sqlparam["champs"][] = "fournisseur";
$sqlparam["champs"][] = "CONCAT(gestionsite,gestionutilisateur) as niveau";
$sqlparam["champs"][] = "enligne";
$sqlparam["champs"][] = "acces";
$sqlparam["where"][] = "syndicat='" . antiInjection($_SESSION["syndicat"]) . "'";
$sqlparam["where"][] = "acces < 2";
$sqlparam["limite"] = ($nombreaffiche * ($nopage - 1)) . "," . $nombreaffiche;
$sqlparam["ordre"][] = $rtri;

unset($sqltemp);
if (isset($zonerecherche) && !empty($zonerecherche)) {
    $sqltemp = "CONCAT_WS (' ',utilisateur, nomreel, email) like '%" . antiInjection($zonerecherche) . "%'";
    $sqlparam["where"][] = $sqltemp;
    $sqlparam["champs"][] = "(SELECT count(administration.refutilisateur) FROM administration where syndicat='" . antiInjection($_SESSION["syndicat"]) . "' AND acces<2 AND $sqltemp ) as compte";
    $module["recherche"]["zonerecherche"] = $zonerecherche;
} else {

    $sqlparam["champs"][] = "(SELECT count(administration.refutilisateur) FROM administration WHERE syndicat='" . antiInjection($_SESSION["syndicat"]) . "' and acces<2) as compte";
}

$result = executerRequeteSql($sqlparam);
$module["compte"] = $result[0]["compte"];
print preparerModule($module);

unset($sqlparamEmployeur);
$sqlparamEmployeur["type"] = "SELECT";
$sqlparamEmployeur["table"][] = "employeurs";
$sqlparamEmployeur["champs"][] = "refemployeur as refid";
$sqlparamEmployeur["champs"][] = "nomemployeur as valeur";
$sqlparamEmployeur["ordre"][] = "refemployeur ASC";
$resultEmployeur = executerRequeteSql($sqlparamEmployeur);

// Liste des employeurs
if (isset($resultEmployeur)) {
    foreach ($resultEmployeur as $clef => $valeur) {
        $structEmployeur[$valeur["refid"]] = $valeur["valeur"];
    }
}

if (isset($result)) {
    $i = ($nopage - 1) * $nombreaffiche + 1;
    unset($style);
    $style = "border:1px solid #cfcfcf; font-family:arial, helvetica, sans-serif; ";
    $style .= "font-size:9pt; margin-left:5px; margin-right:5px;";
    foreach ($result as $clef => $champs) {
        if ($champs["niveau"] == "XXXXXX") {
            $niveau = "Super Admin";
            $suppr = false;
        } elseif ($champs["niveau"] == "OuiOui") {
            $niveau = "Administrateur";
            $suppr = false;
        } else {
            $niveau = "Utilisateur";
            $suppr = true;
        }
        unset($opr, $img, $couleur);
        if ($champs["acces"] == 0) {
            $couleur = "";
            $opr = "Bloquer";
            $img = 23;
        } else {
            $couleur = "color:#ff0000;";
            $opr = "Autoriser";
            $img = 24;
        }

        unset($mdp);
        $mdp = str_repeat("*", 8);
        print "<tr style='$couleur'>\n";
        print "<td style='$style'>$i</td>\n";
        print "<td style='$style'>" . $champs["utilisateur"] . "</TD>\n";
        print "<td style='$style'>" . $champs["nomreel"] . "</TD>\n";
        print "<td style='$style'>" . $structEmployeur[$champs["employeur"]] . "</TD>\n";
        print "<td style='$style'>" . $champs["email"] . "</TD>\n";
        print "<td style='$style'>" . $niveau . "</TD>\n";
        print "<td style='$style'>";
        print "<form action='index2.php?page=liste_utilisateurs' method='POST'>\n";
        print "<input name='lnoutilisateur' type='hidden' value='" . $champs["refutilisateur"] . "'>\n";
        //Jeton de sécurité
        print "<input name='jeton' type='hidden' value='$jeton'>\n";

        //Utilisateur en ligne ou pas (indicateur seulement)
        if ($champs["enligne"] == 1) {
            print "<IMG SRC='images/icones/icones_21.png' alt='Utilisateur en ligne' title='Utilisateur en ligne'>";
        } else {
            print "<IMG SRC='images/icones/icones_22.png' alt='Utilisateur hors ligne' title='Utilisateur hors ligne'>";
        }

        if ($champs["niveau"] === "XXXXXX" && $_SESSION['gestion_site'] = "XXX" && $_SESSION['gestion_utilisateur'] === "XXX") {

            //Modification de la fiche de l'utilisateur
            if ($champs["acces"] == 0) {
                print "<INPUT style='cursor:pointer;' TYPE='button' class='modifier' onclick='changetitre(2);mettrevaleurdansid(\"" . $champs["refutilisateur"] . "\",\"" . $champs["utilisateur"] . "\",\"" . $champs["nomreel"] . "\",\"" . $champs["email"] . "\",";
                print "\"" . $champs["employeur"] . "\",\"" . $champs["cellulaire"] . "\",\"" . $champs["fournisseur"] . "\");' title='Modifier'>\n";
            }

            //Blocage de l'accès et suppression
            if ($suppr) {
                print "<input style='background:url(images/icones/icones_$img.png) no-repeat; width:24px; height:24px; color:transparent; border:0;' type='submit' name='action' Value='$opr' title=\"$opr l'accès\">\n";
                print "<input style='background:url(images/icones/icones_33.png)  no-repeat;  width:24px; height:24px; color:transparent; border:0;' type='submit' name='action' Value='Supprimer' onclick=\"if (!window.confirm('Voulez-vous vraiment supprimer cet utilisateur ( " . trim($champs["utilisateur"]) . " )?  Ceci est définitif!!')) {return false;}\" title='Supprimer'>\n";
            }
        } elseif ($champs["niveau"] !== "XXXXXX" && $_SESSION['gestion_site'] = "Oui" && $_SESSION['gestion_utilisateur'] === "Oui") {


            //Modification de la fiche de l'utilisateur
            if ($champs["acces"] == 0) {
                print "<INPUT style='cursor:pointer;' TYPE='button' class='modifier' onclick='changetitre(2);mettrevaleurdansid(\"" . $champs["refutilisateur"] . "\",\"" . $champs["utilisateur"] . "\",\"" . $champs["nomreel"] . "\",\"" . $champs["email"] . "\",";
                print "\"" . $champs["employeur"] . "\",\"" . $champs["cellulaire"] . "\",\"" . $champs["fournisseur"] . "\");' title='Modifier'>\n";
            }

            //Blocage de l'accès et suppression
            if ($suppr) {
                print "<input style='background:url(images/icones/icones_$img.png) no-repeat; width:24px; height:24px; color:transparent; border:0;' type='submit' name='action' Value='$opr' title=\"$opr l'accès\">\n";
                print "<input style='background:url(images/icones/icones_33.png)  no-repeat;  width:24px; height:24px; color:transparent; border:0;' type='submit' name='action' Value='Supprimer' onclick=\"if (!window.confirm('Voulez-vous vraiment supprimer cet utilisateur ( " . trim($champs["utilisateur"]) . " )?  Ceci est définitif!!')) {return false;}\" title='Supprimer'>\n";
            }
        }
        print "</form>\n";

        print "</td>\n";
        print "</tr>\n";
        $i++;
    }
}
print "</table>";
?>
<script type='text/javascript'>
    function ValidationFormulaire()
    {
        var msgCode = "Code de l'utilisateur requis.";
        var msgNom = "Nom de l'utilisateur requis.";
        var msgEmail = "Adresse de courriel valide requise.";
        var msgEmployeur = "Nom de l'employeur requis.";
        var msgCellulaire = "Numéro de téléphone cellulaire valide requis .";
        var msgFournisseur = "Nom du fournisseur du service cellulaire requis.";
        var frm = document.frmModif;
        if ($("#lutilisateur").val() === "") {
            jAlert(msgCode);
            frm.lutilisateur.focus();
            return false;
        } else if ($("#lnompersonne").val() === "") {
            jAlert(msgNom);
            frm.lnompersonne.focus();
            return false;
        } else if (!isCourrielValide($("#lemail").val())) {
            jAlert(msgEmail);
            frm.lemail.focus();
            return false;
        } else if (frm.lnoemployeur.selectedIndex === 0) {
            jAlert(msgEmployeur);
            frm.lnoemployeur.focus();
            return false;
        } else if ($("#lcellulaire").val() === "") {
            jAlert(msgCellulaire);
            frm.lcellulaire.focus();
            return false;
        } else if (frm.lfournisseur.selectedIndex === 0) {
            jAlert(msgFournisseur);
            frm.lfournisseur.focus();
            return false;
        }

        closeRemote();
        return true;
    }

    // Mise en place des masques de saisie
    $(document).ready(function () {
        $("#lcellulaire").mask("(999) 999-9999");
        $("#frmModif").validate();
        $("#boutonaction[value='Retirer le facteur à double authentification']").on("click", function () {
            $("#fenetremodale").append("<br/><p style='color:red; font-weight:700;'>\n\
                Veuillez patienter... Ne pas fermer cette boîte de message. Elle se fermera automatiquement.</p>");
        });
    });

</script>
<?php

// Pagination
print "<table style='width:968px; margin:auto;'>"; //1200
print "<tr><td style='vertical-align:bottom;'>";
print $seqpage;
print "</td>";
print "<td style='width:320px; text-align:right;'>";

//Haut de page
if ($nombreaffiche > 15) {
    print "<a href='#hautpage' title='Aller en haut de la page'>Haut de page</a>";
    print "<a name='baspage'>";
}
print "</td></tr>";
print "</table>";

//Début de formulaire de saisie
print fenetreModaleDebut($module["fenetre"], $SCRIPT_NAME, $jeton);

//Valeurs par défaut
if (!isset($lnoutilisateur)) {
    $lnoutilisateur = "";
}
if (!isset($lutilisateur)) {
    $lutilisateur = "";
}
if (!isset($lnompersonne)) {
    $lnompersonne = "";
}
if (!isset($lemail)) {
    $lemail = "";
}
if (!isset($lnoemployeur)) {
    $lnoemployeur = "";
}
if (!isset($lcellulaire)) {
    $lcellulaire = "";
}
if (!isset($lfournisseur)) {
    $lfournisseur = "";
}

print"<input type='hidden' id='lemploye' name='lnoutilisateur' value='$lnoutilisateur'>";
print "<table width='100%'>\n";
print "<tr>\n";
print "<td>Code utilisateur : </td>\n";
print "<td><INPUT TYPE='text' NAME='lutilisateur' id='lutilisateur' Value='$lutilisateur' SIZE='50' MAXLENGTH='50'></td>\n";
print "</tr>\n";
print "<tr>\n";
print "<td>Nom de la personne : </td>\n";
print "<td><INPUT TYPE='text' NAME='lnompersonne' id='lnompersonne' Value='$lnompersonne' SIZE='50' MAXLENGTH='50'></td>";
print "</tr>\n";
print "<tr>\n";
print "<td>Adresse de courriel : </td>\n";
print "<td><INPUT TYPE='text' NAME='lemail' id='lemail' Value='$lemail' SIZE='50' MAXLENGTH='50'></td>\n";
print "</tr>\n";
print "<tr>\n";
print "<td>Employeur : </td>\n";
print "<td>\n";
unset($sqlparam2);
$sqlparam2["type"] = "SELECT";
$sqlparam2["table"][] = "employeurs";
$sqlparam2["champs"][] = "refemployeur as refid";
$sqlparam2["champs"][] = "nomemployeur as valeur";
$sqlparam2["ordre"][] = "refemployeur ASC";
$result2 = executerRequeteSql($sqlparam2);

print "<select name='lnoemployeur' id='lnoemployeur'>\n<option>-----</option>\n";
foreach ($result2 as $clef => $item) {
    $checked = ($item["refid"] === $lnoemployeur) ? "checked" : "";
    print "<option value='" . $item["refid"] . "'$checked>" . $item["valeur"] . "</option>\n";
}
print "</select>\n";
print "</td>\n";
print "</tr>\n";
print "<tr>\n";
print "<td>Numéro de cellulaire : </td>\n";
print "<td><INPUT TYPE='text' NAME='lcellulaire' id='lcellulaire' Value='$lcellulaire' SIZE='14' MAXLENGTH='14'></td>\n";
print "</tr>\n";
print "<tr>\n";
print "<tr>\n";
print "<td>Fournisseur cellulaire : </td>\n";
print "<td>\n";
unset($result3);
$result3 = getFournisseursCellulaire();
unset($param);
$param["form"] = "menu2";
$param["nom"] = "lfournisseur";
$param["etq"] = "";
$param["defaut"] = sprintf("%s", $lfournisseur);
$param["donnees"] = $result3;
$param["menu"] = true;
//TODO Mettre un évènement vide pour contourner le gestionnaire interne. À corriger.
$param["evt"] = "blank";
$param["style"] = "";
print formListbox2($param);
print "</td>\n";
print "</tr>\n";
print fenetreModaleFin(array($module["actionajoutbouton"], "Créer un nouveau mot de passe", "Retirer le facteur à double authentification"));

if (isset($action) && $action == "Recherche") {
    print "<script type='text/javascript'>";
    print "   $(document).ready(function() {\n";
    print "      changetitre(2);\n";
    print "      mettrevaleurdansid(\"" . sprintf("%d", $lnoutilisateur_rech) . "\",\"$lutilisateur_rech\",\"$lnompersonne_rech\",\"$lemail_rech\");\n";
    print "   });";
    print "</script>\n";
}
